//定义关于counter的store
import {defineStore} from 'pinia'

/*defineStore 是需要传参数的，其中第一个参数是id，就是一个唯一的值，
简单点说就可以理解成是一个命名空间.
第二个参数就是一个对象，里面有三个模块需要处理，第一个是 state，
第二个是 getters，第三个是 actions。
*/
const useCounter = defineStore("counter", {
    state: () => ({
        count: 50,
    }),
    getters: {},
    actions: {
        // actions没有state，只能通过this拿store，这里打印
        increment(state) {
            console.log(state);
            this.count++
        },
        async axiosData() {
            const res = await fetch("http://-----------------")
            if (res.code === 200) {
                //收到数据保存到store
                this.list = res.data.list
                return "ok"
            }
        }
    },
    // 开启数据缓存
    persist: {
        enabled: true,
        strategies: [
            {
                key: 'counter',//设置存储的key
                storage: localStorage,//表示存储在localStorage
                // paths: ['id'],//指定要长久化的字段
            }
        ]
    }
})

//暴露这个useCounter模块
export default useCounter